const express = require('express');
const bodyParser = require('body-parser');
const mysql = require('mysql2');
const path = require('path');

const app = express();
const port = 5504;

// 创建 MySQL 连接池
const pool = mysql.createPool({
  host: 'localhost',   // MySQL 服务器地址
  user: 'root',    // MySQL 用户名
  password: 'ch869869', // MySQL 密码
  database: 'ABC',     // 数据库名
  waitForConnections: true,   // 是否等待连接池中的连接，默认为 true
  connectionLimit: 10,    // 连接池最大连接数
  queueLimit: 0   // 连接队列最大长度，0 表示无限制
});

// 修复静态文件中间件（明确指定静态目录）
app.use(express.static(path.join(__dirname)));

// 解析 JSON 请求体
app.use(bodyParser.json());

// 添加根路径路由（确保首次访问能正确加载页面）
app.get('/', (req, res) => {
    res.sendFile(path.join(__dirname, 'register.html'));
});

// 注册接口
app.post('/register', (req, res) => {
    const { username, password } = req.body;
    if (!username || !password) {
        return res.status(400).json({ error: '用户名和密码不能为空' });
    }

    // 使用参数化查询防止 SQL 注入
    pool.promise().query('INSERT INTO users (username, password) VALUES (?, ?)', [username, password])
        .then(() => {
            console.log(`注册成功 - 用户名: ${username}`);
            res.json({ message: '注册成功' });
        })
        .catch(err => {
            if (err.code === 'ER_DUP_ENTRY') {
                return res.status(400).json({ error: '用户名已存在' });
            }
            console.error('注册失败:', err);
            res.status(500).json({ error: '服务器错误' });
        });
});

app.listen(port, () => {
    console.log(`服务器运行在 http://localhost:${port}`);
});